package com.love.marriage.defaultAmountConfigRecord.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.love.marriage.common.entity.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.math.BigDecimal;

/**
 * description:  默认金额配置操作记录表类
 * author:       system
 * createDate:   2024-12-07
 * version:      1.0.0
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("default_amount_config_record_t")
@Schema(description = "默认金额配置操作记录表")
public class DefaultAmountConfigRecord extends BaseEntity<DefaultAmountConfigRecord> {

    @Schema(description = "配置ID，关联到default_amount_config_t表", type = "Long", implementation = Long.class)
    @TableField("config_id")
    private Long configId;

    @Schema(description = "操作类型：INSERT=新增, UPDATE=修改, DELETE=删除", type = "String", implementation = String.class)
    @TableField("operation_type")
    private String operationType;

    @Schema(description = "操作前配置名称", type = "String", implementation = String.class)
    @TableField("old_config_name")
    private String oldConfigName;

    @Schema(description = "操作后配置名称", type = "String", implementation = String.class)
    @TableField("new_config_name")
    private String newConfigName;

    @Schema(description = "操作前类型编码", type = "String", implementation = String.class)
    @TableField("old_config_code")
    private String oldConfigCode;

    @Schema(description = "操作后类型编码", type = "String", implementation = String.class)
    @TableField("new_config_code")
    private String newConfigCode;

    @Schema(description = "操作前金额", type = "BigDecimal", implementation = BigDecimal.class)
    @TableField("old_amount")
    private BigDecimal oldAmount;

    @Schema(description = "操作后金额", type = "BigDecimal", implementation = BigDecimal.class)
    @TableField("new_amount")
    private BigDecimal newAmount;

    @Schema(description = "操作前描述", type = "String", implementation = String.class)
    @TableField("old_description")
    private String oldDescription;

    @Schema(description = "操作后描述", type = "String", implementation = String.class)
    @TableField("new_description")
    private String newDescription;

    @Schema(description = "操作原因或备注", type = "String", implementation = String.class)
    @TableField("operation_reason")
    private String operationReason;
}